home *** CD-ROM | disk | FTP | other *** search
/ BBS Toolkit / BBS Toolkit.iso / doors_1 / afix_416.zip / STRUCT.416 < prev    next >
Text File  |  1993-01-16  |  13KB  |  381 lines

  1. (*****************************************************************************
  2.  *                      ALLFIX 4.16 Structure files                          *
  3.  *          Copyright (C) 92,1993 Harald Harms, all rights reserved           *
  4.  *                                                                           *
  5.  *            Information in this document is subject to change              *
  6.  *                         without prior notice.                             *
  7.  *****************************************************************************)
  8.  
  9. Const CR             = #$0D;
  10.       CtrlA          = #$01;
  11.       SoftCR         = #$8D;
  12.       LF             = #$0A;
  13.  
  14.       BoolType : Array[False..True] of String[3] = ('Yes','No ');
  15.  
  16.       _announce   = $0001;            (* Used for Attrib in File echo  *)
  17.       _replace    = $0002;            (* setup                         *)
  18.       _convertall = $0004;
  19.       _passthru   = $0008;
  20.       _dupecheck  = $0010;
  21.       _fileid     = $0020;
  22.       _visible    = $0040;
  23.       _tinysb     = $0080;
  24.       _NoTouch    = $0200;
  25.  
  26.       _SendOnly    = $0001;           (* Used for Export Arrays        *)
  27.       _ReceiveOnly = $0002;
  28.       _Both        = $0004;
  29.       _Passive     = $0008;
  30.  
  31.       _AdoptFile   = 1;               (* Used for Attrib in magic file *)
  32.       _ExecCommand = 2;               (* name setup                    *)
  33.       _ForwardTo   = 3;
  34.       _MoveToArea  = 4;
  35.       _NoForward   = 5;
  36.       _OtherPath   = 6;
  37.       _UpdateAlias = 7;
  38.       _CopyFile    = 8;
  39.       _KeepNum     = 9;
  40.       _HatchNew    = 10;
  41.       _PickUpFile  = 11;
  42.  
  43.       ExportSize = 255;               (* Size of the export array      *)
  44.  
  45. Type NetAddress     = record
  46.        Zone,
  47.        Net,
  48.        Node,
  49.        Point          : Word;
  50.      End;
  51.  
  52.      PathStr = String[60];
  53.  
  54.      ZoneNet = Record
  55.        Zone,
  56.        Net: word
  57.      End;
  58.  
  59.      ExportEntry = Record
  60.        Address: NetAddress;
  61.        Status: byte;
  62.      End;
  63.  
  64.      ExportArray = Array[1..ExportSize] of ExportEntry;
  65.  
  66.      ArcRec = Record
  67.        Arc     : String[12];
  68.        ArcCmd  : String[20];
  69.        UnArc   : String[12];
  70.        UnArcCmd: String[20];
  71.      End;
  72.  
  73.      UplinkRec = Record
  74.        Aka         : NetAddress;
  75.        MgrProgram  : String[8];
  76.        MgrPassword : String[16];
  77.        Attrib      : word;
  78.          (* bit 0 - add prefix
  79.             bit 1 - unconditional
  80.             bit 2 - direct *)
  81.        Groups      : String[26];
  82.        AreasFile   : String[12];
  83.        UseAka      : Byte;
  84.      End;
  85.  
  86.      ALLFIXcfg = Record
  87.        Crc         : Longint;            (* Not used anymore            *)
  88.        Extra61,                          (* 61 bytes of unused space    *)
  89.        NETmail,
  90.        MSGpath,
  91.        Inbound,
  92.        LOGfile     : PathStr;
  93.        Extra2      : Byte;
  94.        SysOp       : String[30];
  95.        RKey        : String[24];
  96.        FileAreas   : array[1..200] of boolean;
  97.        ListPath    : PathStr;
  98.        BBSname     : String[30];
  99.        Baud        : String[5];
  100.        Flags       : String[30];
  101.        Location    : String[30];
  102.        Aka         : Array[0..10] of NetAddress;
  103.        Origin      : Array[1..20] of String[60];
  104.        Days        : Array[1..7]  of string[20];
  105.        Months      : Array[1..12] of string[20];
  106.        Comment     : String[60];
  107.        Mode1Line1,
  108.        Mode1Line2  : String[75];
  109.        GroupNames  : Array[1..26] of String[20];
  110.        Pline1,
  111.        Pline2,
  112.        Pline3      : String[30];
  113.        TicPath,
  114.        Alias,
  115.        Semaphore   : PathStr;
  116.        KeepDate    : Boolean;
  117.        Rescan      : Byte;
  118.          (* 0 - None
  119.             1 - FrontDoor
  120.             2 - InterMail
  121.             3 - D'Bridge *)
  122.        KeepNet,
  123.        KeepRec     : Boolean;
  124.        Swap        : Byte;
  125.        Exclude     : Array[1..20] of String[12];
  126.        RcvdPath    : PathStr;
  127.        DefaultAdd  : PathStr;
  128.        FileCnt     : String[5];
  129.        Arc         : Array[1..10] of ArcRec;
  130.        PktPath     : PathStr;
  131.        FakeAka     : NetAddress;
  132.        PktOut      : PathStr;
  133.        Queue       : PathStr;
  134.        GroupsDef   : Record
  135.          Header,
  136.          Footer : string[60];
  137.          From,
  138.          Too    : String[30];
  139.          Subject: String[60];
  140.          Extra  : Array[1..255] of byte;
  141.        End;
  142.        FareasDef   : Record
  143.          Group  : Char;
  144.          Message: String[12];
  145.          Keep   : byte;
  146.          Include: Boolean;
  147.          Convert: byte;
  148.          ConvertAll: Boolean;
  149.          AllRep    : Boolean;
  150.          CheckDupe,
  151.          FileID    : Boolean;
  152.          Visible   : Boolean;
  153.          TinySB    : Boolean;
  154.          Extra     : Array[1..508] of byte;
  155.        End;
  156.        MagicDef    : Record              (* This record is not used anymore *)
  157.          Group  : Char;
  158.          Message: String[12];
  159.          Keep   : byte;
  160.          days   : byte;
  161.          Extra  : Array[1..512] of byte;
  162.        End;
  163.        NodesDef    : Record
  164.          Groups  : String[26];
  165.          Useaka  : Byte;
  166.          MailStat: Byte;
  167.          Direct  : Boolean;
  168.          TicFile : Byte;
  169.          Message : Boolean;
  170.          Notify    : Boolean;
  171.          Archiver  : Byte;
  172.          Extra   : Array[1..255] of byte;
  173.        End;
  174.        LogStyle    : byte;
  175.        Mode2Line1,
  176.        Mode2Line2  : String[75];
  177.        BadPath     : PathStr;
  178.        AreaLog     : PathStr;
  179.        LocalRep    : Boolean;
  180.        LogOptions  : Longint;
  181.        AkaMatch    : Array[1..20] of record
  182.          Zn: ZoneNet;
  183.          Aka: byte;
  184.        End;
  185.        HMB         : Boolean;
  186.        ReplaceExt  : Boolean;
  187.        KeepMgr     : Boolean;
  188.        AreaMgrOpts : Word;
  189.        AutoAddNodes: Boolean;
  190.        PublicGroups: String[26];
  191.        Uplink      : Array[1..10] of UplinkRec;
  192.        UseXEMS     : Boolean;
  193.        BinkleyMode : Boolean;
  194.        DaysToKeepHis: Byte;
  195.        MaxSizeOfHis : Byte;
  196.        OutBound    : PathStr;
  197.        ResetFuture : Boolean;
  198.        ExtendedChar: Char;
  199.        Extra       : Array[1..951] of byte;
  200.      End;
  201.  
  202.      AreaMGRRec = Record                (* AREAS.FIX *)
  203.        Comment: string[55];
  204.        Name: string[40];
  205.        RName: String[40];
  206.        Origin: byte;
  207.        Board: byte;
  208.        RBoard: byte;
  209.        Aka: byte;
  210.        Extra: Array[1..256] of byte;
  211.      End;
  212.  
  213.      AreaMgrIdx = Record                (* AREAS.IDX *)
  214.        Comment: String[55];
  215.        Offset : Word;
  216.      End;
  217.  
  218.      NewFileMgrRec = Record             (* NEWFILES.FIX *)
  219.        Comment : string[55];
  220.        Group   : Char;
  221.        FileBrd : Byte;
  222.      end;
  223.  
  224.      NewFileMgrIdx = Record             (* NEWFILES.IDX *)
  225.        FileBrd: byte;
  226.        Offset : Word;
  227.      End;
  228.  
  229.      FileMGRrec  = Record               (* FAREAS.FIX *)
  230.        Name      : String[12];
  231.        Message   : String[12];
  232.        Comment   : String[55];
  233.        Group     : Char;
  234.        Attrib    : word;                (* See table at begining *)
  235.        KeepLate  : Byte;
  236.        Convert   : 0..6;
  237.        UplinkNum : Byte;
  238.        DestDir   : PathStr;
  239.        TotalFiles,
  240.        TotalKb   : Word;
  241.        Byear,
  242.        Bmonth    : Byte;
  243.        Extra     : Array[1..14] of Byte;
  244.        Export    : ExportArray;
  245.      End;
  246.  
  247.      FileMGRidx = Record                (* FAREAS.IDX *)
  248.        Name   : String[12];
  249.        Offset : word;
  250.      End;
  251.  
  252.      NodeMGRrec = Record                (* NODEFILE.FIX *)
  253.        Aka       : NetAddress;
  254.        Sysop     : String[35];
  255.        Password  : String[20];
  256.        Groups    : String[26];
  257.        MailStat  : Byte;
  258.        Direct    : Boolean;
  259.        TicFile   : Byte;
  260.        Extra1    : Byte;
  261.        Message   : Boolean;
  262.        Notify    : Boolean;
  263.        Archiver  : Byte;
  264.        Forward   : Boolean;
  265.        Extra     : Array[1..1] of byte;
  266.      End;
  267.  
  268.      NodeMGRidx    = Record             (* NODEFILE.IDX *)
  269.        Aka   : NetAddress;
  270.        Offset: word;
  271.      end;
  272.  
  273.      GroupMgrRec = Record               (* GROUPS.FIX *)
  274.        Group : String[26];
  275.        Name  : String[40];
  276.        Board : Byte;
  277.        Aka   : byte;
  278.        Origin: byte;
  279.        Header,
  280.        Footer: String[60];
  281.        From,
  282.        Too   : String[35];
  283.        Subject : String[60];
  284.        Mode  : Byte;
  285.        Extra : Array[1..5] of byte;
  286.        Export: ExportArray;
  287.      end;
  288.  
  289.      GroupMGRidx    = Record            (* GROUPS.IDX *)
  290.        Group: String[26];
  291.        Offset: Word;
  292.      end;
  293.  
  294.      MagicFileMgrRec = Record           (* MGICFILE.FIX *)
  295.        Attrib   : Byte;
  296.        FileMask,
  297.        FromArea,
  298.        ToArea   : String[12];
  299.        Directory: String[60];
  300.        Command  : String[60];
  301.        Extra    : Array[1..43] of byte;
  302.        Export   : ExportArray;
  303.      end;
  304.  
  305.      MagicMGRidx    = Record            (* MGICFILE.IDX *)
  306.        FileMask : String[12];
  307.        Offset   : Word;
  308.      end;
  309.  
  310.      HatchMGRrec= Record                (* HATCH.FIX *)
  311.        Name   : String[12];
  312.        Spec   : String[79];
  313.        Replace: String[12];
  314.        Magic  : String[20];
  315.        Desc   : String[80];
  316.        Days   : Byte;
  317.        Extra  : Array[1..5] of byte;
  318.      end;
  319.  
  320.      HatchMgrIdx = Record               (* HATCH.IDX *)
  321.        Name: String[12];
  322.        Offset: word;
  323.      end;
  324.  
  325.      FileAreaRecord = Record               (* FILEAREA.FIX *)
  326.        Path: PathStr;
  327.        Name: string[60];
  328.        List: string[60];
  329.        Fnum: string[9];                    (* 'Number' for Maximus file areas *)
  330.        Fbrd: Word;                         (* Real file area number           *)
  331.      end;
  332.  
  333.      FileAreaHeader = Record               (* FILEAREA.FIX *)
  334.        BBStype : byte;
  335.          (* 0 - RemoteAccess
  336.             1 - SuperBBS
  337.             2 - QuickBBS
  338.             3 - Maximus
  339.             4 - Ezycom *)
  340.        Extra   : Array[1..255] of byte;
  341.      end;
  342.  
  343.   (* FILEAREA.FIX file is a file with a header, and then followed by *)
  344.   (* up to 255 FileAreaRecords                                       *)
  345.   (*                                                                 *)
  346.   (* Example on how to read FILEAREA.FIX:                            *)
  347.   (*                                                                 *)
  348.   (* Var f: file;                                                    *)
  349.   (*     Header: FileAreaHeader;                                     *)
  350.   (*     FileArea: FileAreaRecord;                                   *)
  351.   (*     NumRead : word;                                             *)
  352.   (*                                                                 *)
  353.   (* Begin                                                           *)
  354.   (*   Assign(f,'FILEAREA.FIX');                                     *)
  355.   (*   {$I-} Reset(f,1); {$I+}                                       *)
  356.   (*                                                                 *)
  357.   (*   IF Ioresult <> 0 then                                         *)
  358.   (*   Begin                                                         *)
  359.   (*     Writeln('FILEAREA.FIX not found');                          *)
  360.   (*     Halt(1);                                                    *)
  361.   (*   End;                                                          *)
  362.   (*                                                                 *)
  363.   (*   Blockread(f,Header,Sizeof(Header),NumRead);                   *)
  364.   (*   Blockread(f,FileArea,Sizeof(FileArea),NumRead);               *)
  365.   (*   While NumRead > 0 do                                          *)
  366.   (*   Begin                                                         *)
  367.   (*     Writeln(FileArea.name);                                     *)
  368.   (*     Blockread(f,FileArea,Sizeof(FileArea),NumRead);             *)
  369.   (*   End;                                                          *)
  370.   (*                                                                 *)
  371.   (*   Close(f);                                                     *)
  372.   (* End.                                                            *)
  373.  
  374.      FileHistory = Record                  (* FILEHIST.FIX *)
  375.        EchoCRC : Longint;          (* 32 bit CRC of the file echo name    *)
  376.        FileCRC : Longint;          (* 32 bit CRC of the file name         *)
  377.        Year,
  378.        Doy     : Word;             (* Time the file was added to the list *)
  379.      end;
  380.  
  381.